結束昨天的justify-content,今天繼續探討Flex Container其他主要屬性,來討論align-items吧!
屬性 | 說明 |
---|---|
align-items |
沿交叉軸對齊單行項目。 |
若說justify-content定義了彈性項目在彈性容器主軸上的對齊動作,那align-items則是定義了在交叉軸(cross axis) 上的對齊行為。
與justify-content相同的是,一樣在彈性容器上宣告此屬性。
align-items 屬性會將所有直接子系的 align-self 值設定為群組。
根據特定上下文(context),align-items會分成兩種行為:
但因為目前僅講到Flexbox,所以與Grip相關的部分會留到以後補充。
以下是align-items屬性值:
align-items 屬性值 | 說明 |
---|---|
normal | 預設值。在flex佈局模式下,此關鍵字等同於stretch。 |
stretch | 拉伸彈性項目使其填滿容器在交叉軸上的空間。 |
flex-start | 將彈性項目對齊至交叉軸的起點。 |
flex-end | 將彈性項目對齊至交叉軸的終點。 |
center | 將彈性項目在交叉軸上置中對齊。 |
baseline | 以彈性項目的文字基線作對齊基準。 |
圖片取自CSS規範8.3
stretch 會拉長可延伸的彈性項目,成為與同一彈性線上最長/最寬的項目等長/寬。雖然說彈性相目可以延伸到佔有100%的 cross-size,但有其他更高優先權的屬性,比如說:在設定了width或height等已經明確定義尺寸的屬性,stretch 就不影響項目大小。
彈性項目的 cross-start 會緊貼彈性行的 cross-start,且彈性項目的 cross-end 也會緊貼彈性行的 cross-end。
所有子項目會沿交叉軸起點對齊,在 flex-direction: row 下,交叉軸是垂直方向,所以彈性項目會靠上對齊。
所有彈性項目會沿交叉軸終點對齊。
在 flex-direction: row 下,交叉軸是垂直方向,但子元素會靠下對齊。
適用在:要讓項目靠底部對齊,例如按鈕列、卡片底部對齊等設計。
所有彈性項目會沿交叉軸置中對齊。
在 flex-direction: row 下就是垂直置中。
彈性項目會依照文字的 baseline(文字基線)對齊,當項目高度不一定一致時,特別有用。
如彈性項目內含文字,這會讓文字底線整齊對齊,即使元素高度不同。
書籍<CSS大全第四版>
CSS Flexible Box Layout Module Level 1 -8.3
W3school - CSS align-items Property